package com.jason.kotlin.gank.repository

import com.jason.kotlin.gank.api.ApiSource
import com.jason.kotlin.gank.model.*
import retrofit2.http.GET
import retrofit2.http.Headers
import retrofit2.http.Path
import retrofit2.http.Query

/**
 * @description: RollApi
 *
 * @author ChenBaoyang
 * @date 4/23/21 14:35
 */
interface RollApi {

    suspend fun getQRCode(date: String?, type: Int = 0): RollApiResponse<RollQRCodeBean?>

    suspend fun getHolidaySingle(date: String?): RollApiResponse<RollDayBean?>

    suspend fun getJokeList(page: Int): RollApiResponse<RollPageApiResponse<RollJokeBean>>

    suspend fun getCityWeatherCurrentDays(cityName: String?): RollApiResponse<RollWeatherBean?>

    suspend fun getCityWeatherFutureDays(cityName: String?): RollApiResponse<RollForecastsBean>

    suspend fun getHistoryToday(): RollApiResponse<List<RollHistoryBean>>

    suspend fun convertDictionary(content: String?): RollApiResponse<List<RollDictionaryBean>>

    suspend fun getRubbishType(name: String?): RollApiResponse<RollRubbishBean>

    suspend fun getMobileLocation(mobile: String?): RollApiResponse<RollMobileBean>

    suspend fun getIpLocationSelf(): RollApiResponse<RollIpBean?>

    suspend fun getIpLocation(ip: String?): RollApiResponse<RollIpBean?>

    suspend fun getWorldPhoneCode(): RollApiResponse<List<RollPhoneBean>>

    suspend fun getNewsTypes(): RollApiResponse<List<RollNewsTypeBean>>

    suspend fun getNewsList(typeId: Int, page: Int): RollApiResponse<List<RollNewsInfoBean>>

    suspend fun getNewsDetail(newsId: Int): RollApiResponse<RollNewsDetailBean>
}